package Tests;

import server.ambienteGioco.Acqua;
import server.ambienteGioco.Mappa;
import server.ambienteGioco.TerraConCarogna;
import server.ambienteGioco.TerraConVegetazione;
import server.ambienteGioco.TerraSemplice;
import junit.framework.TestCase;

public class TestMappa extends TestCase{
	
	public static void main(String[] args) throws Throwable {
		Mappa mappa = Mappa.instance();
		System.out.println(mappa.getZonaAt(0, 0));
		System.out.println(mappa.getZonaAt(0, 1));
		System.out.println(mappa.getZonaAt(0, 2));
		System.out.println(mappa.getZonaAt(0, 3));
		System.out.println(mappa.getZonaAt(0, 4));
		System.out.println(mappa.getZonaAt(0, 5));
		System.out.println(mappa.getZonaAt(39, 38));
	}

private Mappa map;
	
	public void setUp(){
		try {
			map = Mappa.instance("Mappa.txt");
		} catch (Throwable e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		}
	
	 public void testMappaNotNull(){
		 
		 for(int i=0; i<Mappa.LARGHEZZA_MAPPA; i++){
				for(int j=0; j<Mappa.ALTEZZA_MAPPA; j++){
					assertNotNull(map.getZonaAt(i, j));
				}
			}
	 }
	
	 public void testMappaZone(){
		 
		 
		 for(int i=0; i<Mappa.LARGHEZZA_MAPPA; i++){
				for(int j=0; j<Mappa.ALTEZZA_MAPPA; j++){
					
					assert( (map.getZonaAt(i, j) instanceof Acqua) ||(map.getZonaAt(i, j) instanceof TerraSemplice)||(map.getZonaAt(i, j) instanceof TerraConVegetazione)||(map.getZonaAt(i, j)  instanceof  TerraConCarogna));
					
				}
			} 
	 }
	 
	 
 public void testMappagiusta(){
		 
		 
		 for(int i=0; i<Mappa.LARGHEZZA_MAPPA; i++){
				for(int j=0; j<Mappa.ALTEZZA_MAPPA; j++){
					
					if(map.getZonaAt(i, j) instanceof Acqua) System.out.print("A;");
					if(map.getZonaAt(i, j) instanceof TerraSemplice) System.out.print("T;");
					if(map.getZonaAt(i, j) instanceof TerraConVegetazione) System.out.print("V;");
					if(map.getZonaAt(i, j) instanceof TerraConCarogna) System.out.print("C;");
				} System.out.println(" ");
			} 
	 }
	 
 public void testMappagiusta2(){
	 int a =0;
	 int b=0;
	 int c =0;
	 int d=0;
	 
	 for(int i=0; i<Mappa.LARGHEZZA_MAPPA; i++){
			for(int j=0; j<Mappa.ALTEZZA_MAPPA; j++){
				
				if(map.getZonaAt(i, j) instanceof Acqua) a++;
				if(map.getZonaAt(i, j) instanceof TerraSemplice) b++;
				if(map.getZonaAt(i, j) instanceof TerraConVegetazione) c++;
				if(map.getZonaAt(i, j) instanceof TerraConCarogna) d++;
			}
		} 
	 assert((int)a==(1600*(80))/100 );
	 System.out.println(a);
	 System.out.println(b);
	 System.out.println(c);
	 System.out.println(d);
 }
	 
	 
 
 
	 
	 public void tearDown(){
		 map= null; 
		 }
	
	
}


